package br.fatec.servico;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class OracleSQLEmpresaDAO implements IEmpresaDAO{
	private static final String cadastraEmpresa = "INSERT INTO empresa "
			+ "(cnpj, nome, nomeFantasia, rua, numero, bairro, complemento, cidade, telefone) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) ";
	private static final String excluiEmpresa = "DELETE FROM empresa WHERE "
			+ "cnpj = ? ";
	private static final String consultaEmpresa= "SELECT *  FROM empresa WHERE "
			+ "cnpj = ? ";
	private static final String consultaNome = "SELECT *  FROM empresa WHERE "
			+ "nome LIKE ? ";
	//private static final String alterarDados = "UPDATE empresa SET nome = ? "
	//		+ ", endereco = ?, telefone=? WHERE cnpf = ? ";
	private static final String alterarDados = "{call UPDT_EMPRESA(?,?,?,?,?,?)}";
	String msg = "";

	@Override
	public ResultSet consulta(String cnpj) {
		ResultSet rs = null;
		PreparedStatement stmt;
		try {

			stmt = OracleSQLDAOFactory.criaConexao().prepareStatement(consultaEmpresa);
			stmt.setString(1, cnpj);
			rs = stmt.executeQuery();
			// stmt.close();
		} catch (SQLException e) {
			msg = e.getMessage();
			System.out.println(msg);
		}
		return rs;
	}
	@Override
	public ResultSet consultaNome(String nome) {
		ResultSet rs = null;
		PreparedStatement stmt;
		try {

			stmt = OracleSQLDAOFactory.criaConexao().prepareStatement(consultaNome);
			stmt.setString(1, nome);

			rs = stmt.executeQuery();
			
			// stmt.close();
		} catch (SQLException e) {
			msg = e.getMessage();
		}
		return rs;
	}
	@Override
	public int cadastra(String cnpj, String nome, String nomeFantasia, String rua, int numero, String bairro, String complemento, int cidade, String telefone) {
		PreparedStatement stmt;
		int rc = 0;
		try {
			stmt = OracleSQLDAOFactory.criaConexao().prepareStatement(cadastraEmpresa);
			stmt.setString(1, cnpj);
			stmt.setString(2, nome);
			stmt.setString(3, nomeFantasia);
			stmt.setString(4, rua);
			stmt.setInt(5, numero);
			stmt.setString(6, bairro);
			stmt.setString(7, complemento);
			stmt.setInt(8, cidade);
			stmt.setString(9, telefone);
			rc = stmt.executeUpdate();
			stmt.close();
		} catch (SQLException e) {
			msg = e.getMessage();
			System.out.println("metodo cadastra mysqlempresadao =" + e.getMessage());
		}
		return rc;
	}
	

	@Override
	public int exclui(String cnpj) {
		PreparedStatement stmt;
		int rc = 0;
		try {
			stmt = OracleSQLDAOFactory.criaConexao().prepareStatement(excluiEmpresa);
			stmt.setString(1, cnpj);
			rc = stmt.executeUpdate();
			
			stmt.close();
		} catch (SQLException e) {
			msg = e.getMessage();
		}
		return rc;
	}

	@Override
	public int altera(String cnpj, String nome, String nomeFantasia, String rua, int numero, String bairro, String complemento, int cidade, String telefone) {
		PreparedStatement stmt;
		int rc = 0;
		try {
			stmt = OracleSQLDAOFactory.criaConexao().prepareStatement(alterarDados);
			stmt.setString(1, cnpj);
			stmt.setString(2, nome);
			stmt.setString(3, nomeFantasia);
			stmt.setString(4, rua);
			stmt.setInt(5, numero);
			stmt.setString(6, bairro);
			stmt.setString(7, complemento);
			stmt.setInt(8, cidade);
			stmt.setString(9, telefone);
			rc = stmt.executeUpdate();
			stmt.close();
		} catch (SQLException e) {
			msg = e.getMessage();
		}
		return rc;
	}

	public String getMessage() {
		return msg;
	}
	@Override
	public ResultSet consultaTodas() {
		// TODO Auto-generated method stub
		return null;
	}
}
